package transfertDonnees;

import java.util.HashSet;
import java.util.Set;

import webServicesParser.RecupObjet;
import model.librairie.*;
import model.social.*;

public class Transfert {
	
	Utilisateur util = null;
	Profil profil = null;
	Set<Collection>  listeCollections = new HashSet<Collection>(0);
	Set<BD> listeBD = new HashSet<BD>(0);
	Set<ParaBD> listeParaBD = new HashSet<ParaBD>(0);
	Set<Article> listeArticle = new HashSet<Article>(0); 
	Set<Artiste> listeArtiste = new HashSet<Artiste>(0);
	Set<Genre> listeGenre = new HashSet<Genre>(0);
	
	public Transfert(){}
	
	public void synchro(){
		
	}
	
	public boolean installation(String login, String mdp) throws Exception{
		boolean res = false;
		try{
			//recupere l'id
			RecupObjet obj = new RecupObjet();
			System.out.println(obj.getId(login, mdp));
			int id = obj.getId(login, mdp);
			if(id != -1){
				
				
			//recupere l'objet Utilisateur
			util = RecupObjet.getUtilisateur(id);			
			
			//recupere l'objet Utilisateur
			profil = RecupObjet.getProfil(id);
			
			//recupere la liste des collections de l'utilisateur
			listeCollections = RecupObjet.getCollectionList(id);
			
			//recupere la liste de articles des collections de l'utilisateur
			for(Collection collection : listeCollections){ 
				
				for(BD bd : RecupObjet.getBDList(id,collection.getId_collection())){
					
					if(bd.getType() == 'B'){						
						System.out.println("bd transfert : "+bd.getId_article());
						listeArticle.add(bd);
						listeArtiste = RecupObjet.getArtisteList(id, collection.getId_collection(), bd.getId_article());
						listeGenre = RecupObjet.getGenreList(id, collection.getId_collection(), bd.getId_article());
						
						if(!listeArtiste.isEmpty()){
							for(Artiste artiste : listeArtiste)
								System.out.println("article : "+artiste.getNom());
						}
						
						if(!listeGenre.isEmpty()){
							for(Genre genre : listeGenre)
								System.out.println("genre : "+genre.getNomGenre());
						}
					}
				}
				for(ParaBD paraBD : RecupObjet.getParaBDList(id,collection.getId_collection())){
					
					if(paraBD.getType() == 'P')
						listeArticle.add(paraBD);
				}
				collection.setListeArticles(listeArticle);
			}

			
			util.setProfil(profil);
			util.setListeCollections(listeCollections);

			res=true;
			
			}else{
				res = false;
			}
			
		}catch(Exception e){
			System.out.println("erreur : "+e);
			res = false;
		}
		
		return res;
	}
	
}
